/*
 * Alumno.cpp
 *
 *  Created on: 18/10/2009
 *      Author: ngonzalez
 */

#include "Alumno.h"

Alumno::Alumno() {
	this->setNombre("Nicolas");
	this->setApellido("Gonzalez");
	this->setPadron("234");
	this->setDni("123456789");
}

Alumno::~Alumno() {
}

string Alumno::serializar(){
	//cout << "Serializando Alumno" << endl;
	return this->nombre+";"+this->getApellido()+";"+this->getPadron()+";"+this->getDni();
}

void Alumno::desSerializar(string alumno) {
	int i;
	string campo;
	list<string>* campos;
	campos = new list<string>;
	i=0;
	int tamanio=alumno.size();
	while(i <= tamanio -1) {

		//cout << "DESEREALIZACION ALUMNO CARACTER  " << alumno[i] << endl;
		campo = "";
		while((alumno[i]!=';') && (i<= tamanio-1)) {
			campo=campo + alumno[i];
			i++;
		}

		//cout << "CAMPO: " << campo << endl;

		campos->push_back(campo);
		i++;
	}
	this->AsignarCampos(campos);

	//cout << "Nombre " << this->nombre << endl;

	//cout << "Apellido " << this->apellido << endl;

}

void Alumno::AsignarCampos(list<string>* campos) {
	list <string>::iterator it;
	it=campos->begin();
	this->nombre=*it;
	it++;
	this->apellido=*it;
	it++;
	this->padron=*it;
	it++;
	this->dni=*it;

}

string Alumno::getApellido() const{
	return apellido;
}

string Alumno::getDni() const{
	return dni;
}

string Alumno::getPadron() const{
	return padron;
}

string Alumno::getNombre() const{
	return nombre;
}

void Alumno::setApellido(string apellido){
	this->apellido = apellido;
}

void Alumno::setDni(string  dni){
	this->dni = dni;
}

void Alumno::setNombre(string nombre){
	this->nombre = nombre;
}

void Alumno::setPadron(string padron){
	this->padron = padron;
}

string Alumno::getValorCampo(string campo) {
	//por ahora harcodeado
	return this->getNombre();
}
